<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>libspotify: Artist browsing</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />



</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">libspotify
   
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.8.0 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">Artist browsing</div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga8077aa18c043210e859479be2616a3e7"><td class="memItemLeft" align="right" valign="top">typedef void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__artistbrowse.html#ga8077aa18c043210e859479be2616a3e7">artistbrowse_complete_cb</a> (<a class="el" href="group__types.html#gafd3d5aae485f1012ec91b7948e6f9f2b">sp_artistbrowse</a> *result, void *userdata)</td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga8dd8364b2fcd29c846209660bd9a69b2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__types.html#gafd3d5aae485f1012ec91b7948e6f9f2b">sp_artistbrowse</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__artistbrowse.html#ga8dd8364b2fcd29c846209660bd9a69b2">sp_artistbrowse_create</a> (<a class="el" href="group__types.html#ga70dd19c6f824cf6a159575aa4c128b53">sp_session</a> *session, <a class="el" href="group__types.html#ga31764fbd69618c10be173c6c03d4c1bc">sp_artist</a> *artist, <a class="el" href="group__session.html#gac86504cc9e8cadbc30c8aa8dbf355034">sp_artistbrowse_type</a> type, <a class="el" href="group__artistbrowse.html#ga8077aa18c043210e859479be2616a3e7">artistbrowse_complete_cb</a> *callback, void *userdata)</td></tr>
<tr class="memitem:ga966b0f59e7b2b3d0037e44bb49dcdabc"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__artistbrowse.html#ga966b0f59e7b2b3d0037e44bb49dcdabc">sp_artistbrowse_is_loaded</a> (<a class="el" href="group__types.html#gafd3d5aae485f1012ec91b7948e6f9f2b">sp_artistbrowse</a> *arb)</td></tr>
<tr class="memitem:ga203e757088ff7a5098f16a1367da25d2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__error.html#gafd27986ce4cd9eeaeca8adda83c9eb6b">sp_error</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__artistbrowse.html#ga203e757088ff7a5098f16a1367da25d2">sp_artistbrowse_error</a> (<a class="el" href="group__types.html#gafd3d5aae485f1012ec91b7948e6f9f2b">sp_artistbrowse</a> *arb)</td></tr>
<tr class="memitem:ga5f6a046b2bd261d7628582b986a9019f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__types.html#ga31764fbd69618c10be173c6c03d4c1bc">sp_artist</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__artistbrowse.html#ga5f6a046b2bd261d7628582b986a9019f">sp_artistbrowse_artist</a> (<a class="el" href="group__types.html#gafd3d5aae485f1012ec91b7948e6f9f2b">sp_artistbrowse</a> *arb)</td></tr>
<tr class="memitem:ga98dc47d36d2789999bfe62707c5041d7"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__artistbrowse.html#ga98dc47d36d2789999bfe62707c5041d7">sp_artistbrowse_num_portraits</a> (<a class="el" href="group__types.html#gafd3d5aae485f1012ec91b7948e6f9f2b">sp_artistbrowse</a> *arb)</td></tr>
<tr class="memitem:ga5f164b2f9609a7bf2c89b3a1407ec239"><td class="memItemLeft" align="right" valign="top">const byte *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__artistbrowse.html#ga5f164b2f9609a7bf2c89b3a1407ec239">sp_artistbrowse_portrait</a> (<a class="el" href="group__types.html#gafd3d5aae485f1012ec91b7948e6f9f2b">sp_artistbrowse</a> *arb, int index)</td></tr>
<tr class="memitem:ga8c862caa2234125ffcc4e93287b1e029"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__artistbrowse.html#ga8c862caa2234125ffcc4e93287b1e029">sp_artistbrowse_num_tracks</a> (<a class="el" href="group__types.html#gafd3d5aae485f1012ec91b7948e6f9f2b">sp_artistbrowse</a> *arb)</td></tr>
<tr class="memitem:ga45d28771a856f935dc40ab40e27dec4c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__types.html#ga47bbd2262f0c8b5d7147af7d62198e48">sp_track</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__artistbrowse.html#ga45d28771a856f935dc40ab40e27dec4c">sp_artistbrowse_track</a> (<a class="el" href="group__types.html#gafd3d5aae485f1012ec91b7948e6f9f2b">sp_artistbrowse</a> *arb, int index)</td></tr>
<tr class="memitem:ga0c26782796af954300ce92fddea97637"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__artistbrowse.html#ga0c26782796af954300ce92fddea97637">sp_artistbrowse_num_tophit_tracks</a> (<a class="el" href="group__types.html#gafd3d5aae485f1012ec91b7948e6f9f2b">sp_artistbrowse</a> *arb)</td></tr>
<tr class="memitem:ga5da55f43def03fe9f0d2c8b252b9755a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__types.html#ga47bbd2262f0c8b5d7147af7d62198e48">sp_track</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__artistbrowse.html#ga5da55f43def03fe9f0d2c8b252b9755a">sp_artistbrowse_tophit_track</a> (<a class="el" href="group__types.html#gafd3d5aae485f1012ec91b7948e6f9f2b">sp_artistbrowse</a> *arb, int index)</td></tr>
<tr class="memitem:gaf0055361abd53425d89a4636a32b5c83"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__artistbrowse.html#gaf0055361abd53425d89a4636a32b5c83">sp_artistbrowse_num_albums</a> (<a class="el" href="group__types.html#gafd3d5aae485f1012ec91b7948e6f9f2b">sp_artistbrowse</a> *arb)</td></tr>
<tr class="memitem:ga5b36c9a34876beea8fda8674b93d4fd3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__types.html#ga6fd3e5de729c429fef3ff18ece6dcfad">sp_album</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__artistbrowse.html#ga5b36c9a34876beea8fda8674b93d4fd3">sp_artistbrowse_album</a> (<a class="el" href="group__types.html#gafd3d5aae485f1012ec91b7948e6f9f2b">sp_artistbrowse</a> *arb, int index)</td></tr>
<tr class="memitem:ga2559638742416ac621af0e919e017d17"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__artistbrowse.html#ga2559638742416ac621af0e919e017d17">sp_artistbrowse_num_similar_artists</a> (<a class="el" href="group__types.html#gafd3d5aae485f1012ec91b7948e6f9f2b">sp_artistbrowse</a> *arb)</td></tr>
<tr class="memitem:gac60ef4f9e006a920f1d72b6098743fbc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__types.html#ga31764fbd69618c10be173c6c03d4c1bc">sp_artist</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__artistbrowse.html#gac60ef4f9e006a920f1d72b6098743fbc">sp_artistbrowse_similar_artist</a> (<a class="el" href="group__types.html#gafd3d5aae485f1012ec91b7948e6f9f2b">sp_artistbrowse</a> *arb, int index)</td></tr>
<tr class="memitem:ga8b93b9e5630662855f35694280ba4d2b"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__artistbrowse.html#ga8b93b9e5630662855f35694280ba4d2b">sp_artistbrowse_biography</a> (<a class="el" href="group__types.html#gafd3d5aae485f1012ec91b7948e6f9f2b">sp_artistbrowse</a> *arb)</td></tr>
<tr class="memitem:gadce357748b82abce8a7b093882850fdb"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__artistbrowse.html#gadce357748b82abce8a7b093882850fdb">sp_artistbrowse_backend_request_duration</a> (<a class="el" href="group__types.html#gafd3d5aae485f1012ec91b7948e6f9f2b">sp_artistbrowse</a> *arb)</td></tr>
<tr class="memitem:gaf7eab2cdf13ff344ea20755611a5dcbb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__artistbrowse.html#gaf7eab2cdf13ff344ea20755611a5dcbb">sp_artistbrowse_add_ref</a> (<a class="el" href="group__types.html#gafd3d5aae485f1012ec91b7948e6f9f2b">sp_artistbrowse</a> *arb)</td></tr>
<tr class="memitem:gaf0018dd013421db10be7fa2012d2ab17"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__artistbrowse.html#gaf0018dd013421db10be7fa2012d2ab17">sp_artistbrowse_release</a> (<a class="el" href="group__types.html#gafd3d5aae485f1012ec91b7948e6f9f2b">sp_artistbrowse</a> *arb)</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<p>Artist browsing initiates the fetching of information for a certain artist.</p>
<dl class="section note"><dt>Note:</dt><dd>There is currently no built-in functionality available for getting the albums belonging to an artist. For now, just iterate over all tracks and note the album to build a list of all albums. This feature will be added in a future version of the library. </dd></dl>
<hr/><h2>Typedef Documentation</h2>
<a class="anchor" id="ga8077aa18c043210e859479be2616a3e7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void <a class="el" href="group__artistbrowse.html#ga8077aa18c043210e859479be2616a3e7">artistbrowse_complete_cb</a>(<a class="el" href="group__types.html#gafd3d5aae485f1012ec91b7948e6f9f2b">sp_artistbrowse</a> *result, void *userdata)</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>The type of a callback used in <a class="el" href="group__artistbrowse.html#ga8dd8364b2fcd29c846209660bd9a69b2">sp_artistbrowse_create()</a></p>
<p>When the callback is called, the metadata of all tracks belonging to it will have been loaded, so <a class="el" href="group__track.html#ga8b69cf193679c7e00031ae43e61c6a54">sp_track_is_loaded()</a> will return non-zero. The same goes for the similar artist data.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">result</td><td>The same pointer returned by <a class="el" href="group__artistbrowse.html#ga8dd8364b2fcd29c846209660bd9a69b2">sp_artistbrowse_create()</a> </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">userdata</td><td>The opaque pointer given to <a class="el" href="group__artistbrowse.html#ga8dd8364b2fcd29c846209660bd9a69b2">sp_artistbrowse_create()</a> </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="gaf7eab2cdf13ff344ea20755611a5dcbb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__artistbrowse.html#gaf7eab2cdf13ff344ea20755611a5dcbb">sp_artistbrowse_add_ref</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__types.html#gafd3d5aae485f1012ec91b7948e6f9f2b">sp_artistbrowse</a> *&#160;</td>
          <td class="paramname"><em>arb</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Increase the reference count of an artist browse result</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">arb</td><td>The artist browse result object </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga5b36c9a34876beea8fda8674b93d4fd3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__types.html#ga6fd3e5de729c429fef3ff18ece6dcfad">sp_album</a>* <a class="el" href="group__artistbrowse.html#ga5b36c9a34876beea8fda8674b93d4fd3">sp_artistbrowse_album</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__types.html#gafd3d5aae485f1012ec91b7948e6f9f2b">sp_artistbrowse</a> *&#160;</td>
          <td class="paramname"><em>arb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>index</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Given an artist browse object, return one of its albums</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">arb</td><td>Album browse object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>The index for the album. Should be in the interval [0, <a class="el" href="group__artistbrowse.html#gaf0055361abd53425d89a4636a32b5c83">sp_artistbrowse_num_albums()</a> - 1]</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>A album object, or NULL if the index is out of range.</dd></dl>
<dl class="section see"><dt>See also:</dt><dd><a class="el" href="group__album.html">Album subsystem</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga5f6a046b2bd261d7628582b986a9019f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__types.html#ga31764fbd69618c10be173c6c03d4c1bc">sp_artist</a>* <a class="el" href="group__artistbrowse.html#ga5f6a046b2bd261d7628582b986a9019f">sp_artistbrowse_artist</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__types.html#gafd3d5aae485f1012ec91b7948e6f9f2b">sp_artistbrowse</a> *&#160;</td>
          <td class="paramname"><em>arb</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Given an artist browse object, return a pointer to its artist object</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">arb</td><td>Artist browse object</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>Artist object </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="browse_8c-example.html#a21">browse.c</a>.</dd>
</dl>
</div>
</div>
<a class="anchor" id="gadce357748b82abce8a7b093882850fdb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="group__artistbrowse.html#gadce357748b82abce8a7b093882850fdb">sp_artistbrowse_backend_request_duration</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__types.html#gafd3d5aae485f1012ec91b7948e6f9f2b">sp_artistbrowse</a> *&#160;</td>
          <td class="paramname"><em>arb</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Return the time (in ms) that was spent waiting for the Spotify backend to serve the request</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">arb</td><td>Artist browse object</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>-1 if the request was served from the local cache If the result is not yet loaded the return value is undefined </dd></dl>

</div>
</div>
<a class="anchor" id="ga8b93b9e5630662855f35694280ba4d2b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* <a class="el" href="group__artistbrowse.html#ga8b93b9e5630662855f35694280ba4d2b">sp_artistbrowse_biography</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__types.html#gafd3d5aae485f1012ec91b7948e6f9f2b">sp_artistbrowse</a> *&#160;</td>
          <td class="paramname"><em>arb</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Given an artist browse object, return the artists biography</p>
<dl class="section note"><dt>Note:</dt><dd>This function must be called from the same thread that did <a class="el" href="group__session.html#gaf2891f2daced4ff6da84219d6376b3aa">sp_session_create()</a> </dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">arb</td><td>Artist browse object</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>Biography string in UTF-8 format. Returned string is valid as long as the album object stays allocated and no longer than the next call to <a class="el" href="group__session.html#ga019a640b351de2a1ffe040ed755013f4">sp_session_process_events()</a> </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="browse_8c-example.html#a26">browse.c</a>.</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga8dd8364b2fcd29c846209660bd9a69b2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__types.html#gafd3d5aae485f1012ec91b7948e6f9f2b">sp_artistbrowse</a>* <a class="el" href="group__artistbrowse.html#ga8dd8364b2fcd29c846209660bd9a69b2">sp_artistbrowse_create</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__types.html#ga70dd19c6f824cf6a159575aa4c128b53">sp_session</a> *&#160;</td>
          <td class="paramname"><em>session</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__types.html#ga31764fbd69618c10be173c6c03d4c1bc">sp_artist</a> *&#160;</td>
          <td class="paramname"><em>artist</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__session.html#gac86504cc9e8cadbc30c8aa8dbf355034">sp_artistbrowse_type</a>&#160;</td>
          <td class="paramname"><em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__artistbrowse.html#ga8077aa18c043210e859479be2616a3e7">artistbrowse_complete_cb</a> *&#160;</td>
          <td class="paramname"><em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>userdata</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Initiate a request for browsing an artist</p>
<p>The user is responsible for freeing the returned artist browse using <a class="el" href="group__artistbrowse.html#gaf0018dd013421db10be7fa2012d2ab17">sp_artistbrowse_release()</a>. This can be done in the callback.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">session</td><td>Session object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">artist</td><td>Artist to be browsed. The artist metadata does not have to be loaded </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>Type of data requested, see the sp_artistbrowse_type enum for details </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>Callback to be invoked when browsing has been completed. Pass NULL if you are not interested in this event. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">userdata</td><td>Userdata passed to callback.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>Artist browse object</dd></dl>
<dl class="section see"><dt>See also:</dt><dd><a class="el" href="group__artistbrowse.html#ga8077aa18c043210e859479be2616a3e7">artistbrowse_complete_cb</a> </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="browse_8c-example.html#a51">browse.c</a>.</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga203e757088ff7a5098f16a1367da25d2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__error.html#gafd27986ce4cd9eeaeca8adda83c9eb6b">sp_error</a> <a class="el" href="group__artistbrowse.html#ga203e757088ff7a5098f16a1367da25d2">sp_artistbrowse_error</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__types.html#gafd3d5aae485f1012ec91b7948e6f9f2b">sp_artistbrowse</a> *&#160;</td>
          <td class="paramname"><em>arb</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Check if browsing returned an error code.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">arb</td><td>Artist browse object</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>One of the following errors, from <a class="el" href="group__error.html#ga83154178d3a32668658734d2facfa22b">sp_error</a> SP_ERROR_OK SP_ERROR_IS_LOADING SP_ERROR_OTHER_PERMANENT SP_ERROR_OTHER_TRANSIENT </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="browse_8c-example.html#a32">browse.c</a>.</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga966b0f59e7b2b3d0037e44bb49dcdabc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="group__artistbrowse.html#ga966b0f59e7b2b3d0037e44bb49dcdabc">sp_artistbrowse_is_loaded</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__types.html#gafd3d5aae485f1012ec91b7948e6f9f2b">sp_artistbrowse</a> *&#160;</td>
          <td class="paramname"><em>arb</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Check if an artist browse request is completed</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">arb</td><td>Artist browse object</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>True if browsing is completed, false if not </dd></dl>

</div>
</div>
<a class="anchor" id="gaf0055361abd53425d89a4636a32b5c83"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="group__artistbrowse.html#gaf0055361abd53425d89a4636a32b5c83">sp_artistbrowse_num_albums</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__types.html#gafd3d5aae485f1012ec91b7948e6f9f2b">sp_artistbrowse</a> *&#160;</td>
          <td class="paramname"><em>arb</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Given an artist browse object, return number of albums</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">arb</td><td>Artist browse object</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>Number of albums for given artist </dd></dl>

</div>
</div>
<a class="anchor" id="ga98dc47d36d2789999bfe62707c5041d7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="group__artistbrowse.html#ga98dc47d36d2789999bfe62707c5041d7">sp_artistbrowse_num_portraits</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__types.html#gafd3d5aae485f1012ec91b7948e6f9f2b">sp_artistbrowse</a> *&#160;</td>
          <td class="paramname"><em>arb</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Given an artist browse object, return number of portraits available</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">arb</td><td>Artist browse object</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>Number of portraits for given artist </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="browse_8c-example.html#a24">browse.c</a>.</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga2559638742416ac621af0e919e017d17"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="group__artistbrowse.html#ga2559638742416ac621af0e919e017d17">sp_artistbrowse_num_similar_artists</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__types.html#gafd3d5aae485f1012ec91b7948e6f9f2b">sp_artistbrowse</a> *&#160;</td>
          <td class="paramname"><em>arb</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Given an artist browse object, return number of similar artists</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">arb</td><td>Artist browse object</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>Number of similar artists for given artist </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="browse_8c-example.html#a22">browse.c</a>.</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga0c26782796af954300ce92fddea97637"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="group__artistbrowse.html#ga0c26782796af954300ce92fddea97637">sp_artistbrowse_num_tophit_tracks</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__types.html#gafd3d5aae485f1012ec91b7948e6f9f2b">sp_artistbrowse</a> *&#160;</td>
          <td class="paramname"><em>arb</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Given an artist browse object, return number of tophit tracks This is a set of tracks for the artist with highest popularity</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">arb</td><td>Artist browse object</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>Number of tophit tracks for given artist </dd></dl>

</div>
</div>
<a class="anchor" id="ga8c862caa2234125ffcc4e93287b1e029"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="group__artistbrowse.html#ga8c862caa2234125ffcc4e93287b1e029">sp_artistbrowse_num_tracks</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__types.html#gafd3d5aae485f1012ec91b7948e6f9f2b">sp_artistbrowse</a> *&#160;</td>
          <td class="paramname"><em>arb</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Given an artist browse object, return number of tracks</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">arb</td><td>Artist browse object</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>Number of tracks for given artist </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="browse_8c-example.html#a25">browse.c</a>.</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga5f164b2f9609a7bf2c89b3a1407ec239"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const byte* <a class="el" href="group__artistbrowse.html#ga5f164b2f9609a7bf2c89b3a1407ec239">sp_artistbrowse_portrait</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__types.html#gafd3d5aae485f1012ec91b7948e6f9f2b">sp_artistbrowse</a> *&#160;</td>
          <td class="paramname"><em>arb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>index</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Return image ID representing a portrait of the artist</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">arb</td><td>Artist object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>The index of the portrait. Should be in the interval [0, <a class="el" href="group__artistbrowse.html#ga98dc47d36d2789999bfe62707c5041d7">sp_artistbrowse_num_portraits()</a> - 1]</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>ID byte sequence that can be passed to <a class="el" href="group__image.html#gaf29e89f45945db2b3667bf9db4279c33">sp_image_create()</a></dd></dl>
<dl class="section see"><dt>See also:</dt><dd><a class="el" href="group__image.html#gaf29e89f45945db2b3667bf9db4279c33">sp_image_create</a> </dd></dl>

</div>
</div>
<a class="anchor" id="gaf0018dd013421db10be7fa2012d2ab17"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__artistbrowse.html#gaf0018dd013421db10be7fa2012d2ab17">sp_artistbrowse_release</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__types.html#gafd3d5aae485f1012ec91b7948e6f9f2b">sp_artistbrowse</a> *&#160;</td>
          <td class="paramname"><em>arb</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Decrease the reference count of an artist browse result</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">arb</td><td>The artist browse result object </td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="browse_8c-example.html#a33">browse.c</a>.</dd>
</dl>
</div>
</div>
<a class="anchor" id="gac60ef4f9e006a920f1d72b6098743fbc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__types.html#ga31764fbd69618c10be173c6c03d4c1bc">sp_artist</a>* <a class="el" href="group__artistbrowse.html#gac60ef4f9e006a920f1d72b6098743fbc">sp_artistbrowse_similar_artist</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__types.html#gafd3d5aae485f1012ec91b7948e6f9f2b">sp_artistbrowse</a> *&#160;</td>
          <td class="paramname"><em>arb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>index</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Given an artist browse object, return a similar artist by index</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">arb</td><td>Album browse object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>The index for the artist. Should be in the interval [0, <a class="el" href="group__artistbrowse.html#ga2559638742416ac621af0e919e017d17">sp_artistbrowse_num_similar_artists()</a> - 1]</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>A pointer to an artist object.</dd></dl>
<dl class="section see"><dt>See also:</dt><dd><a class="el" href="group__artist.html">Artist subsystem</a> </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="browse_8c-example.html#a23">browse.c</a>.</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga5da55f43def03fe9f0d2c8b252b9755a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__types.html#ga47bbd2262f0c8b5d7147af7d62198e48">sp_track</a>* <a class="el" href="group__artistbrowse.html#ga5da55f43def03fe9f0d2c8b252b9755a">sp_artistbrowse_tophit_track</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__types.html#gafd3d5aae485f1012ec91b7948e6f9f2b">sp_artistbrowse</a> *&#160;</td>
          <td class="paramname"><em>arb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>index</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Given an artist browse object, return one of its tophit tracks This is a set of tracks for the artist with highest popularity</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">arb</td><td>Album browse object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>The index for the track. Should be in the interval [0, <a class="el" href="group__artistbrowse.html#ga0c26782796af954300ce92fddea97637">sp_artistbrowse_num_tophit_tracks()</a> - 1]</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>A track object, or NULL if the index is out of range.</dd></dl>
<dl class="section see"><dt>See also:</dt><dd><a class="el" href="group__track.html">Track subsystem</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga45d28771a856f935dc40ab40e27dec4c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__types.html#ga47bbd2262f0c8b5d7147af7d62198e48">sp_track</a>* <a class="el" href="group__artistbrowse.html#ga45d28771a856f935dc40ab40e27dec4c">sp_artistbrowse_track</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__types.html#gafd3d5aae485f1012ec91b7948e6f9f2b">sp_artistbrowse</a> *&#160;</td>
          <td class="paramname"><em>arb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>index</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Given an artist browse object, return one of its tracks</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">arb</td><td>Album browse object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>The index for the track. Should be in the interval [0, <a class="el" href="group__artistbrowse.html#ga8c862caa2234125ffcc4e93287b1e029">sp_artistbrowse_num_tracks()</a> - 1]</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>A track object, or NULL if the index is out of range.</dd></dl>
<dl class="section see"><dt>See also:</dt><dd><a class="el" href="group__track.html">Track subsystem</a> </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="browse_8c-example.html#a27">browse.c</a>.</dd>
</dl>
</div>
</div>
</div><!-- contents -->
<hr size="1"><address style="text-align: right;"><small>
Generated on Wed Mar 28 2012 18:24:09.<br>
Copyright &copy; 2006&ndash;2012 Spotify Ltd</small></address>
</body>
</html>
